#include "BulletDynamics/Featherstone/btMultiBodyFixedConstraint.h"
#ifdef __cplusplus
extern "C" {
#endif
btMultiBodyFixedConstraint* bullet_NewbtMultiBodyFixedConstraint(btMultiBody* body,int link,btRigidBody* bodyB,btVector3* pivotInA,btVector3* pivotInB,btMatrix3x3* frameInA,btMatrix3x3* frameInB){
	btMultiBody * c_arg_body=(btMultiBody *)(void*)(body);
	int c_arg_link=link;
	btRigidBody * c_arg_bodyB=(btRigidBody *)(void*)(bodyB);
	btVector3 const& c_arg_pivotInA=(btVector3 const&)(*pivotInA);
	btVector3 const& c_arg_pivotInB=(btVector3 const&)(*pivotInB);
	btMatrix3x3 const& c_arg_frameInA=(btMatrix3x3 const&)(*frameInA);
	btMatrix3x3 const& c_arg_frameInB=(btMatrix3x3 const&)(*frameInB);
	btMultiBodyFixedConstraint* wrap_out = new btMultiBodyFixedConstraint(c_arg_body,c_arg_link,c_arg_bodyB,c_arg_pivotInA,c_arg_pivotInB,c_arg_frameInA,c_arg_frameInB);
	return wrap_out;
}

btMultiBodyFixedConstraint* bullet_NewbtMultiBodyFixedConstraint1(btMultiBody* bodyA,int linkA,btMultiBody* bodyB,int linkB,btVector3* pivotInA,btVector3* pivotInB,btMatrix3x3* frameInA,btMatrix3x3* frameInB){
	btMultiBody * c_arg_bodyA=(btMultiBody *)(void*)(bodyA);
	int c_arg_linkA=linkA;
	btMultiBody * c_arg_bodyB=(btMultiBody *)(void*)(bodyB);
	int c_arg_linkB=linkB;
	btVector3 const& c_arg_pivotInA=(btVector3 const&)(*pivotInA);
	btVector3 const& c_arg_pivotInB=(btVector3 const&)(*pivotInB);
	btMatrix3x3 const& c_arg_frameInA=(btMatrix3x3 const&)(*frameInA);
	btMatrix3x3 const& c_arg_frameInB=(btMatrix3x3 const&)(*frameInB);
	btMultiBodyFixedConstraint* wrap_out = new btMultiBodyFixedConstraint(c_arg_bodyA,c_arg_linkA,c_arg_bodyB,c_arg_linkB,c_arg_pivotInA,c_arg_pivotInB,c_arg_frameInA,c_arg_frameInB);
	return wrap_out;
}

btMatrix3x3* bullet_btMultiBodyFixedConstraint_getFrameInA(btMultiBodyFixedConstraint* c_this){
	btMatrix3x3 const& c_out = c_this->getFrameInA();
	btMatrix3x3* wrap_out = (btMatrix3x3*)(&c_out);
	return wrap_out;
}

btMatrix3x3* bullet_btMultiBodyFixedConstraint_getFrameInB(btMultiBodyFixedConstraint* c_this){
	btMatrix3x3 const& c_out = c_this->getFrameInB();
	btMatrix3x3* wrap_out = (btMatrix3x3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBodyFixedConstraint_getPivotInA(btMultiBodyFixedConstraint* c_this){
	btVector3 const& c_out = c_this->getPivotInA();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

btVector3* bullet_btMultiBodyFixedConstraint_getPivotInB(btMultiBodyFixedConstraint* c_this){
	btVector3 const& c_out = c_this->getPivotInB();
	btVector3* wrap_out = (btVector3*)(&c_out);
	return wrap_out;
}

void bullet_btMultiBodyFixedConstraint_setFrameInA(btMultiBodyFixedConstraint* c_this,btMatrix3x3* frameInA){
	btMatrix3x3 const& c_arg_frameInA=(btMatrix3x3 const&)(*frameInA);
	c_this->setFrameInA(c_arg_frameInA);
}

void bullet_btMultiBodyFixedConstraint_setPivotInA(btMultiBodyFixedConstraint* c_this,btVector3* pivotInA){
	btVector3 const& c_arg_pivotInA=(btVector3 const&)(*pivotInA);
	c_this->setPivotInA(c_arg_pivotInA);
}

#ifdef __cplusplus
}
#endif
